/**
 * 検索クエリを表すデータクラス
 * @author kino
 */
function Query(){
	var currentDate = new Date();
	
    /** {ItemType} 検索対象データの種別。 */
    this.itemType = ItemType.COMPOUND;
    
    /** {int} 検索対象ユーザの識別子 */
    this.userId = -1;
    
    /** {int} 検索対象年。 2000 = 西暦2000年*/
    this.year = currentDate.getFullYear();
    
    /** {int} 検索対象月。 1 = 1月 */
    this.month = currentDate.getMonth()+1;
}

/**
 * 保持している検索クエリを、JSON形式で表した文字列を返す。
 */
Query.prototype.toJson = function(){
    var resultParts = new Array();
    resultParts.push('{"itemType":"');
    resultParts.push(this.itemType);
    resultParts.push('", "userId":');
    resultParts.push(this.userId);
    resultParts.push(', "year":');
    resultParts.push(this.year);
    resultParts.push(', "month":');
    resultParts.push(this.month);
    resultParts.push('}');
    return resultParts.join('');
}

/**
 * クエリに相当するJSON表現をeval()した結果オブジェクトから、データを復元する。
 * @param {JSON} evaledJson eval()したJSON表現。
 */
Query.prototype.fromJson = function(evaledJson){
    this.itemType = evaledJson.itemType;
    this.userId = evaledJson.userId;
    this.year = evaledJson.year;
    this.month = evaledJson.month;
}

